public class Day5 {
    // 面试题 01.02 判断是否互为字符重排
    public boolean CheckPermutation(String s1, String s2) {
        // 判断字符的个数是否匹配
        // 如果长度不一样的话，一定不是重排字符串
        if(s1.length() != s2.length()) {
            return false;
        }
        // 使用数组模拟简易的字符串
        int[] hash = new int[26];
        // 把字符串s1放入到 hash 中，并且记录其出现的次数
        for(int i = 0;i < s1.length();i++) {
            hash[s1.charAt(i) - 'a']++;
        }

        // 字符串s2中出现的去s1中进行--，如果出现负数就是错误的
        for(int i = 0;i < s2.length();i++) {
            hash[s2.charAt(i) - 'a']--;
            if(hash[s2.charAt(i) - 'a'] < 0) {
                return false;
            }
        }
        return true;
    }
}
